﻿using AnlianCommon.Common.Domains.BankCustomers;
using AnlianCommon.Common.Domains.BeginningManagement;
using AnlianCommon.Common.Domains.BreedingManagement;
using AnlianCommon.Common.Domains.OrganizationalUnits;
using AnlianCommon.Common.Domains.ProductionManagement;
using AnlianCommon.Common.Domains.SheepFarmHouse;
using AnlianCommon.Common.Domains.SheepManagement;
using AnlianCommon.Common.Domains.UserPermissions;
using AnlianCommon.Common.DTO;
using AutoMapper;
using SheepCommon.API.BreedingHistoryss;
using SheepCommon.API.Crossbreedings;
using SheepCommon.API.LambWeanings;
using SheepCommon.API.Procurements;
using SheepCommon.API.Seedweanings;
using SheepCommon.API.SheepCommands;
using SheepCommon.API.SheepCommands.Breedingsettinges;
using SheepCommon.API.SheepCommands.EwesGiveBirthes;
using SheepCommon.API.SheepCommands.MeasurementBodyes;
using SheepCommon.API.SheepCommands.PhaseDeterminationes;
using SheepCommon.API.SheepCommands.PregnancyTestes;
using SheepCommon.API.SheepCommands.SheepCullinges;
using SheepCommon.API.SheepCommands.SheepDiees;
using SheepCommon.API.SheepCommands.SheepTransferes;
using SheepCommon.API.SheepCommands.SheepWeighedes;
using SheepCommon.API.SheepPurchases;
using SheepCommon.API.SheepSelles;
using SheepCommon.API.Vendors;

namespace SheepCommon.API.CommonAuto
{
    public class SheepAutoMapperProfile : Profile
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public SheepAutoMapperProfile()
        {
            //创建什么新增的映射 由 新增什么的入参 转换 为 角色实体
            CreateMap<SheepArchivesCreateCommand, SheepArchives>();
            //dto
            CreateMap<SheepArchivesQueryDto,SheepArchives>().ReverseMap();
            //创建羊只转舍新增的映射 由 新增羊只转舍的入参 转换 为 羊只转舍实体
            CreateMap<SheepTransferCreateCommand, SheepTransfer>();
            //创建种母配种新增的映射 由 新增种母配种的入参 转换 为 种母配种实体
            CreateMap<BreedingsettingCreateCommand, Breedingsetting>();
            //创建种母妊检新增的映射 由 新增种母妊检的入参 转换 为 种母妊检实体
            CreateMap<PregnancyTestCreateCommand, PregnancyTest>();
            //创建种母分娩新增的映射 由 新增种母分娩检的入参 转换 为 种母分娩实体
            CreateMap<EwesGiveBirthCreateCommand, EwesGiveBirth>();
            //创建养只称重新增的映射 由 新增养只称重的入参 转换 为 养只称重实体
            CreateMap<SheepWeighedCreateCommand, SheepWeighed>();
            //创建羊尺体测新增的映射 由 新增羊尺体测的入参 转换 为 羊尺体测实体
            CreateMap<MeasurementBodyCreateCommand, MeasurementBody>();
            //创建羊只品相新增的映射 由 新增羊只品相的入参 转换 为 羊只品相实体
            CreateMap<PhaseDeterminationCreateCommand, PhaseDetermination>();
            //创建羊只死亡新增的映射 由 新增羊只死亡的入参 转换 为 羊只死亡实体
            CreateMap<SheepDieCreateCommand, SheepDie>();
            //创建羊只淘汰新增的映射 由 新增羊只淘汰的入参 转换 为 羊只淘汰实体
            CreateMap<SheepCullingCreateCommand, SheepCulling>();
            CreateMap<ProcurementCreateCommand, GPprice>();
            CreateMap<SheepSellCreateCommand, SheepSell>();
            //------------------------------------------------------------------------
            CreateMap<SeedweaningCreateCommand, Seedweaning>().ReverseMap();
            CreateMap<BreedingHistorysCreateCommand, BreedingHistorys>().ReverseMap();
            CreateMap<CrossbreedingCreateCommand, Crossbreeding>().ReverseMap();
            CreateMap<LambWeaningCreateCommand, LambWeaning>().ReverseMap();
            CreateMap<VendorCreateCommand, Vendor>().ReverseMap();
            CreateMap<BankaccountCreateCommand, Bankaccount>().ReverseMap();
            CreateMap<GPpriceCreateCommand, GPprice>().ReverseMap();
            CreateMap<VendorcontactCreateCommand, Vendorcontact>().ReverseMap();
            CreateMap<ClientCreateCommand, Client>().ReverseMap();
            CreateMap<SheepPurchaseCreateCommand, SheepPurchase>().ReverseMap();
        }
    }
}
